// 延时任务管理
function NW04_rw_ys(fq) {
    this.fq = fq;
    //专门存放 需要【延时】的任务； 存放的是个体： NW04_rw_ys_gt 
    this.rwzx = [];
    this.jygz = /^_0402_ys[\da-zA-Z_]*_{1}[0-9]+$/
}

/**
 * 从对象中，分析出延时任务。然后，创建一个任务，并保存任务。
 * 
 *    从对象属性中，分析出我们的延时任务
 *    【ff】符合这条规则的，即为延时任务-执行方法：   [_0402_ys][_可选字符]_[纯数字]
 *    【zt】并且，控制任务状态的，即为               [_0402_ys][_可选字符]    如果没有，自动生成。并附值为 1   ; 0停止状态； 1表示通行状态（任务只能工作在 通行状态）
 *    【sj】并且，得到延时执行的时间为               [纯数字]
 * 
 *    比如：
 *    _0402_ys_200
 *    _0402_ys
 * @param {对象} RWdx 需要被
 */
NW04_rw_ys.prototype.tjRW = function (RWdx) {
    let _yb_haomiao;//毫秒前_的游标。 
    let _sj;
    let _ztMing;
    for (let ffm in RWdx) {
        // console.log(typeof ffm === "function")
        if (this.jygz.test(ffm) ) {//检查是否符合我们的规则。并且是函数。
            _yb_haomiao = ffm.lastIndexOf('_');
            // ffm= _0402_ys_个性化_200
            _sj = parseInt(ffm.substring(_yb_haomiao + 1));  //  200
            _ztMing = ffm.substring(0, _yb_haomiao)          //  _0402_ys_个性化
            if (RWdx[_ztMing] == undefined) {
                RWdx[_ztMing] = 1;//创建属性，并附值为1：通行状态
            }
            this.rwzx.push(new NW04_rw_ys_gt(_sj, RWdx, ffm, _ztMing));//创建一个任务个体：将分析出来的 任务参数，保存起来。
        }
    }
}


/**
 * 执行延时
 * @param {整数} yanchi 延时时间
 * @param {对象} dx 定时执行ff方法的对象
 * @param {文本} ff dx里面的方法名。每延时yanchi毫秒，就会执行一次 dx[ff]();
 */
NW04_rw_ys.prototype.qd = function () {
    for (let i = 0; i < this.rwzx.length; i++) {
        this.rwzx[i].qd();
    }
}